package servlet;

import java.io.IOException;
import java.util.List;

import javax.ejb.EJB;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import bean.remote.SolicitudArticuloRemote;
import dominio.ArticuloItemCompra;
import dominio.SolicitudArticulo;
import dominio.SolicitudCompra;

/**
 * Crea una solicitud de fabrica
 * Busca todas las solicitudes de fabrica y las muetra
 * @author Maxi.Herrera
 *
 */
public class SolicitudCompraServlet extends HttpServlet {

	/**
	 * 
	 */
	private static final long serialVersionUID = -1573707374472959571L;

	@EJB(beanName = "solicitudArticuloBean")
	private SolicitudArticuloRemote solicitudArticuloRemote;

	// Deculve todas las solicitudes compra
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		List<SolicitudCompra> solicitudesCompra = solicitudArticuloRemote
				.findAllSolicitudesCompra();

		String page = "solicitudesCompra.jsp";

		req.setAttribute("data", solicitudesCompra);
		// Disptching request
		RequestDispatcher dispatcher = req.getRequestDispatcher(page);
		if (dispatcher != null) {
			dispatcher.forward(req, resp);
		}

	}

	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {

		Long idSolicitud = Long.valueOf(req.getParameter("idSolicitud"));
		Long idModulo = Long.valueOf(req.getParameter("idModulo"));

		SolicitudArticulo solicitudArticulo = solicitudArticuloRemote
				.findByIdSolicitudAndIdModulo(idSolicitud, idModulo);

		String[] codigosArticulo = req.getParameterValues("codigoArticulo");
		String[] aFabricar = req.getParameterValues("aFabricar");

		SolicitudCompra solicitudCompra = new SolicitudCompra(
				solicitudArticulo.getCodigo());

		for (int i = 0; i < codigosArticulo.length; i++) {
			String codigoArticulo = codigosArticulo[i];
			String cantidadAFabricarString = aFabricar[i];

			Integer cantidadAFabricar = cantidadAFabricarString == null
					|| "".equals(cantidadAFabricarString)
					|| " ".equals(cantidadAFabricarString) ? 0 : Integer
					.valueOf(cantidadAFabricarString);

			ArticuloItemCompra articuloItemCompra = new ArticuloItemCompra(
					Long.valueOf(codigoArticulo), cantidadAFabricar,
					solicitudCompra);
			solicitudCompra.add(articuloItemCompra);
		}
		solicitudArticuloRemote.crearSolicitudCompra(solicitudCompra);
	}
}
